Various types of computer display screen magnification and zoom functionalities are known. In general, such magnifiers show a magnified copy of a portion of what appears on a computer's screen. Such functionalities have been provided as accessibility options for the visually impaired, and for other purposes, both as features provided within particular application software, and as specialty software intended to provide magnification/zoom functionalities generally available for use at an operating system (e.g., desktop) level and with user applications. For the visually impaired, such features may assist with the reading of small screen text and/or the discernment of icons and the like. More generally, magnifications and zoom functionalities can be useful within applications, and at an operating system (e.g., desktop) level, where it may be desired to enlarge all or a portion of screen objects or images.
An example of a user application providing zoom functionalities is Adobe Acrobat's .pdf document reader. In addition to standard toolbar zoom level selections via a dropdown menu, there are three pan and zoom related features: Loupe Tool, Pan & Zoom window, Dynamic Zoom tool.
With the Loupe Tool, a user controls the zoom level with a slider and controls the zoom position by clicking within a document. The zoomed area is represented by a rectangle on the document which is inversely proportional in size to the zoom level; the zoomed view is shown in a separate window. With the Pan & Zoom window feature, a resizable box is moveable on a document page presented in a small window. A document view provided in the background zooms and pans as the box is resized and moved. With the Dynamic Zoom tool, the regular cursor changes to a representation of a small magnifying glass signifying that a zoom mode has been entered. In this mode, a user is able to click on the document and drag up/down to dynamically zoom in and out, and is able to pan at the lateral edges of the document.
As a further example of a zoom feature provided as part of user application software, Digital Image Pro offers a set of controls on a tool bar provided as part of a window for navigating images. These include a slider based zoom level, return to 100% button, panning window, and a zoom to selection button. Similar to the Adobe Pan and Zoom feature, a box whose size is inversely proportional to a selected zoom level is moveable on an image presented in a small window. A magnified view of the image portion within the box is provided in the background.
Applications commonly implement zoom functionalities utilizing the input facilities of a computer mouse. For example, rolling the scroll wheel on a mouse in conjunction with pressing the CTRL key on the keyboard (CTRL+Wheel) may allow users to zoom in and out of applications. Each application has its own zooming increments, and scroll wheel zooming applies these increments. Other zoom options reside within the Microsoft IntelliPoint™ (mouse) software control panel, as shown in Related Art FIG. 4. On the Buttons tab, Zoom In and Zoom Out commands have recently been added as options for each mouse button. Some Microsoft keyboards have a Zoom control (e.g., “slider”), which operates under the control of Microsoft's IntelliType™ software.
As compared with magnifier software developed for use at an operating system (desktop) level, there is greater flexibility in the development of magnification and zoom features for a particular user application, as the application can be structured from “the ground up” to accommodate those features. Also, with an application specific magnifier, interaction of the magnifier with independently executing programs and their associated windows is generally not a concern. Zooming is easily achieved in an application. The application has an internal representation of the content to be displayed and if designed correctly it can display the content at different sizes or zoom levels. In Microsoft's Word,® for example, you can zoom in until only a few lines show on the screen yet the text is very clear because the fonts are based on vector graphics (mathematical descriptions of the characters instead of bitmaps).
With a magnifier designed to be generally available for use with the desktop and with any other open windows, i.e., at an operating system (OS) level, the internal representation that an application may have for zoom functionalities is not available. Rather, magnification is performed by manipulation of a screenshot or bitmap of the output. Although this doesn't typically increase the detail beyond the applicable screen resolution, it does allow users to view user interface (UI) objects and text at larger sizes. The manner in which such a magnifier interacts with the various underlying screen elements and windows is of great importance; the nature of that interaction is likely to have a significant impact on the actual and perceived usability of the feature.
An example of an existing OS level screen magnification feature is the “Magnifier” of Microsoft's Windows XP® operating system. Magnifier is a display utility that makes the screen more readable for users who have impaired vision. It creates a separate window that displays a magnified portion of the screen, which portion is determined by the position of the pointing device cursor, e.g., mouse pointer. A user can change the magnification level via settings in the feature's control panel. The user can move or resize the Magnifier window, or drag it to the edge of the screen and lock it into place.
A known screen magnification specialty application is Zoom Magic. When launched, this application opens a custom magnification window, as shown in FIG. 1. The window is sizable and moveable as a regular window. All tools/settings are available in the title bar. The window magnifies whatever is immediately beneath. The mouse cursor can move over the magnified content but it cannot interact with the content.
Referring to FIG. 1, there is a cursor tracking mode initiated by clicking the arrow button in the window title bar. Clicking on the different red arrows will dock the window top/bottom/left/right. Center undocks the window and reverts it to a regular window. This mode allows overlay of other open windows but does not allow interaction with underlying application windows within the magnification window. Cursor tracking can be toggled on/off by clicking the arrow button. There is an option to keep the magnification window on top of the desktop and any other open windows, but in this mode the magnified image does not update unless the magnification window is clicked.
“Lens” is a tool offered by ABF Magnifying Tools (http://www.abf-soft.com/magnifying-tools.shtml) which creates a caricature of a magnifying glass, as seen in Related Art FIG. 2. The user can reposition the glass by dragging and use it to selectively zoom-in on areas of the screen. A user can adjust the magnification level by clicking the + & − buttons. This tool takes a static screen shot at the time of activation. If anything changes on the screen, it is not reflected in the zoomed image.
Another example of a known accessibility specialty application is ZoomText 8.1, by AI2 (http://www.aisquared.com/index.htm). When application is launched, a modal control panel type user interface (UI) appears, as shown in Related Art FIG. 3.
The magnifier/zoom features of ZoomText 8.1 have several modes:
A Full Screen Mode magnifies the entire screen incrementally. As the mouse nears the edges of the screen, panning is initiated automatically.
An Overlay Mode creates a resizable square window in the bottom right hand corner of the screen. The mouse tracks in the regular (1:1) view and that movement is mirrored in the magnified view. As the mouse nears the edges of the screen, panning is initiated automatically within the zoom window.
A Lens Mode creates a floating resizable square window that moves with the mouse cursor. A Line Mode creates a horizontal band across the screen that moves up and down with changes in the Y coordinates of the mouse cursor. Dynamic updating occurs within the magnification window to reflect changes in the screen content during use, and interaction with underlying application windows is available through the magnification window, i.e., mouse and keyboard input are permitted to pass through the magnifier to the underlying window.
A Docked Mode creates a resizable band (outlined in black) positioned against either the top, bottom right or left edges of the screen. Mouse movement is tracked only in the zoomed view, while the 1:1 view is locked.
When enabled, a Freeze It tool allows the user to draw a resizable box on the screen and lock down (“freeze”) its position. The predefined box view locks the zoom position to particular X and Y coordinates. If content changes within the area that is magnified, then it is reflected in the magnified content within the box. Freeze mode is available only in the “Full Screen” magnifier mode. In the full Screen mode, there is no lens; the whole screen is magnified and the mouse pans to “off-screen” areas.
Known display screen magnifiers are less than ideal in terms of their simplicity and convenience, and the intuitiveness of their use. Also, the manner in which some magnifiers are implemented renders them highly fragile, i.e., susceptible to malfunction in the event of operating system/driver updates and patches.
It would be desirable to have a robust computer implemented display screen magnifier which behaves more like an actual optical lens magnifier in terms of being able to “float above” the computer desktop and other open windows, to provide a magnified view of what is beneath it in a natural and intuitive way, and to permit uninhibited viewing and interaction with the underlying desktop/windows.
Implementing a magnification application intended for use with an operating system that provides a windows-based graphical user interface (GUI), e.g., a Microsoft's Windows® operating system, presents certain challenges. If the magnifier is created as a conventional window, the magnification window itself becomes a part of the desktop when it is opened. As a result, system calls to get desktop images for magnification will include the magnifier window itself (and not that portion of the GUI underneath it). Use of such system calls to do magnification, as in the Windows XP magnifier, lead to an infinity mirror effect. The result from a user perspective is that he/she is precluded from obtaining a magnified view of what lies beneath the magnification window.
A number of available magnification applications, such as the previously mentioned ZoomText product, have dealt with the above-described difficulty using a technique known as driver chaining. With this approach, a selected portion of the screen content composited by the operating system is intercepted and manipulated by the kernel level magnifier before going to the video display driver. With screen reading or screen magnification software, assistive technology vendors (ATVs) essentially locate the display driver, get the information needed for it, then pass the sometimes modified Display Driver Interface (DDI) calls to the original display driver. (Certain remote control software also uses this technique to intercept information being passed to a remote computer.) The DDI interception technique is called driver chaining. The chained driver intercepts the DDI calls from GDI to the display driver and manipulates the calls in such a way as to magnify a part of the screen. As far as the Windows® operating system is concerned, the superimposed magnifier output is simply not there, so calls to copy portions of the desktop will not see it.
Because driver chaining intervenes with a preestablished operating system/driver relationship, it may not be officially supported by the operating system supplier, e.g., Microsoft. As a result, the technique tends to be very fragile and prone to malfunction, e.g., if the operating system is upgraded with new service packs or drivers. Additional information concerning driver chaining, and its application in screen magnifiers and other assistive technology products, can be found on the Microsoft Developers Network (MSDN), at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc/html/atg_driverchain.asp.